import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
 * La  clase Fmadera es hija de Fecha
 * 
 * @author Gabriel
 * @version 1.0
 */
public class Fmadera extends Flecha
{
    /**
     * variable de fuerza
     */
    public Vector fuerza;
   
   /**
    * Constructor de Flecha madera
    */
    public Fmadera()
    {
        fuerza = new Vector();
    }
    /**
    * Constructor de Flecha madera
    */
    public Fmadera(Vector fuerza)
    {
        this.fuerza = fuerza;
    }

     /**
     * En el metood act la flecha se mueve por el mundo y detecta si choca con algo.
     */
    public void act() 
    {
        fuerza.agrega(new Vector(90, 0.6));
        GreenfootImage thisImage = getImage();
        World world = getWorld();
        List<Blanco> list = world.getObjects(Blanco.class);
        List<Puntos> puntos = world.getObjects(Puntos.class);
        Blanco objBlanco = list.get(0);
        GreenfootImage imageBlanco = objBlanco.getImage();
        Puntos pts = puntos.get(0);
        if(getOneIntersectingObject(Enemigo.class) == null && this.getX() + (thisImage.getHeight()/2) < objBlanco.getX() - imageBlanco.getHeight()/4 ||this.getX() + (thisImage.getHeight()/2) > objBlanco.getX() + imageBlanco.getHeight()/4 ){
            setLocation(getX()+(int)fuerza.getX(), getY()+(int)fuerza.getY());    
            setRotation(fuerza.getDirection());
        }
        else
        {
            if(getOneIntersectingObject(Enemigo.class)!=null)  //choca con un enemigo
            {
               super.chocaEnemigo(this);
               world.removeObject(this);    //se elimina la flecha.
            }
            else if(getOneIntersectingObject(Blanco.class)!=null){    //choca con el blanco
                Greenfoot.playSound("impact.wav");
                Greenfoot.delay(12);
                pts.checkPts(getY());
                getWorld().removeObject(this);
            }
            else{
                setLocation(getX()+(int)fuerza.getX(), getY()+(int)fuerza.getY());
                setRotation(fuerza.getDirection());
            }
        }
    }
}    

